//  通过chainWebpack自定义打包入口    chainWebpack打包方式是通过链式编程进行打包的
module.exports = {
  chainWebpack: config => {
    config.when(process.env.NODE_ENV === 'production', config => {
      //  发布阶段
      config.entry('app').clear().add('./src/main-prod.js')
      // externals加载外部CDN资源
      //  把这里标注上的包，到时候发布阶段之后把这些包打包合并到chunk-vendors.7ae7a0bf.js文件上，然后会去html文件上找
      config.set('externals', {
        vue: 'Vue',
        'vue-router': 'VueRouter',
        axios: 'axios',
        lodash: '_',
        echarts: 'echarts',
        nprogress: 'NProgress',
        'vue-quill-editor': 'vueQuillEditor'
      })
      //  修改html中的属性值
      config.plugin('html').tap(args => {
        args[0].isProd = true
        return args
      })
    })

    config.when(process.env.NODE_ENV === 'development', config => {
      //  开发阶段
      config.entry('app').clear().add('./src/main-dev.js')

      config.plugin('html').tap(args => {
        args[0].isProd = false
        return args
      })
    })
  }
}
